软考真题
第4题

试题四(15分)

阅读下列说明和C代码,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

排序是将一组无序的数据元素调整为非递减顺序的数据序列的过程,堆排序是一种常用的排序算法。用顺序存储结构存储堆中元素,非递减堆排序的步骤是:

( )将含n个元素的待排序数列构造成一个初始大项堆,存储在数组R(R[1],R[2],… R[n])中。此时堆的规模为n,堆项元素R[1]就是序列中最大的元素,R[n]是堆中最后一个元素。

( )将堆顶元素和堆中最后一个元素交换,最后一个元素脱离堆结构,堆的规模减1,将堆中剩余的元素调整成大顶堆;

( )重复步骤( ),直到只剩下最后一个元素在堆结构中,此时数组R是一个非递减的数据序列。

【C代码】

下面是该算法的C语言实现。

( )主要变量说明

n:待排序的数组长度

R[]:待排序数组,n个数放在R[1],R[2],…,R[n]中

代码:

【问题1】(8分)

根据以上说明和C代码,填充C代码中的空( )~( )

【问题2】(2分)

根据以上说明和C代码,算法的时间复杂度为上 ( ) (用O符号表示)。

【问题3】(5分))

考虑数据序列R=(7,10,13,15,4,20,19,8),n=8,则构建的初始大顶堆为 ( ) ,第一个元素脱离堆结构,对剩余元素再调整成大顶堆后的数组R为 ( )

2022年 下半年 下午试卷 案例
正确答案:
你的答案:
请先在App中激活(应用市场搜“软考真题”)
知识点:
试卷:
2022年 下半年 下午试卷 案例

笔记

Vv方了

请先在App中激活(应用市场搜“软考真题”)

2023-05-15


请先在App中激活(应用市场搜“软考真题”)

2023-04-24


请先在App中激活(应用市场搜“软考真题”)

2023-04-24


Vv方了

请先在App中激活(应用市场搜“软考真题”)

2023-05-15


就闵一小口

请先在App中激活(应用市场搜“软考真题”)

2023-05-24


满分的苗子

请先在App中激活(应用市场搜“软考真题”)

2023-11-04


答题卡
加油
纠错
得分:0